﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace GestionEco
{
    public class Chevre : Herbivore
    {
        public Chevre(bool s,int uneVieMax, int uneAttaque, int uneEsquive, int desDegats, int uneVue, int uneRegen, int uneFaimMax, int uneSoifMax, int desPointsActionActuels, string n, Image img)
            : base(s,uneVieMax, uneAttaque, uneEsquive, desDegats, uneVue, uneRegen, uneFaimMax, uneSoifMax, desPointsActionActuels, n, img)
        {
            this.typeTerrain = new string[2] { "Plaine","Montagne" };
            this.vieMax = uneVieMax;
            this.attaque = uneAttaque;
            this.esquive = uneEsquive;
            this.degats = desDegats;
            this.vue = uneVue;
            this.regen = uneRegen;
            this.faimMax = uneFaimMax;
            this.soifMax = uneSoifMax;
            this.PointsActionActuels = desPointsActionActuels;
            this.sexe = s;
            this.vieActuelle = vieMax;
            this.faimActuelle = 0;
            this.soifActuelle = 0;
        }

        public override string[] getTypeTerrain()
        {
            return this.typeTerrain;
        }

        public override void seDeplacer()
        {
            base.seDeplacer();
        }

        public override void seRegenerer()
        {
            base.seRegenerer();
        }

        public override void vieillir()
        {
            base.vieillir();
        }

        public override void seNourrir()
        {
            base.seNourrir();
        }

        public override void boire(Terrain unTerrain)
        {
            base.boire(unTerrain);
        }

            Chevre enfant = null;
            if (this.sexe != uneChevre.sexe)
            {            
                Random rnd;

                int enfAttaque = (this.attaque + uneChevre.getAttaque()) / 2;
                int enfEsquive = (this.esquive + uneChevre.getEsquive()) / 2;
                int enfDegat = (this.degats + uneChevre.getDegat()) / 2;
                int enfVue = (this.vue + uneChevre.getVue()) / 2;
                int enfRegen = (this.regen + uneChevre.getRegen()) / 2;
                int enfFaimMax = (this.faimMax + uneChevre.getFaimMax()) / 2;
                //int enfcoeffFaim = (this.coeffFaim + uneChevre.CoeffFaim) / 2;
                int enfVieMax = (this.vieMax + uneChevre.getVieMax()) / 2;
                int enfSoifMax = (this.soifMax + uneChevre.getSoifMax()) / 2;
                //int enfCoeffSoif = (this.coeffSoif + uneChevre.CoeffSoif) / 2;
                int enfPointsActuel = (this.PointsActionActuels + uneChevre.PointsActionActuels) / 2;
                //int enfAgeMax = (this.AgeMax + uneChevre.AgeMax) / 2;
                int enfMajorite = (this.majorite + uneChevre.getMajorite()) / 2;
                //int enfNbTourReprod = (this.nbTourReprod + uneChevre.NbTourReprod) / 2;
                int enfS = rnd.Next(1, 3);
                bool enfSexe;

                if (enfS == 1)
                {
                    enfSexe = true;
                }
                else
                {
                    enfSexe = false;
                }

            
                enfant = new Chevre(enfAttaque, enfEsquive, enfDegat, enfVue, enfRegen, enfFaimMax, enfcoeffFaim, enfVieMax, enfSoifMax, enfCoeffSoif, enfPointsActuel, enfAgeMax, enfMajorite, enfNbTourReprod, enfSexe, Color.Red);
            }
            else
            {
                Console.WriteLine("Les deux etres vivants ont le meme sexe");
            }

            return enfant;
        }
        //public override EtreVivant seReproduire(EtreVivant unEtreVivant)
        //{
        //    base.seReproduire(unEtreVivant);
        //}
    }
}
